package com.briup.pts.config.response;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 通过枚举类，维护一个统一的响应；
 * 即统一维护响应状态码和响应消息的关系
 */
@Getter
// 创建一个私有的构造器
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public enum ResultCode {
    // 统一指定成功的响应
    SUCCESS(200,"操作成功"),

    // 认证失败响应
    USER_IS_EXISTS(10000,"该用户名已存在"),
    USER_IS_NOT_EXISTS(10001,"该用户不存在"),
    PASSWORD_IS_ERROR(10002,"您输入的密码有误，请重新输入"),
    ACCOUNT_IS_UNABLE(10003,"您的用户账号状态锁定，无法登录！"),
    TOKEN_IS_MISSING(10004,"您还未登录，请前往登录"),
    TOKEN_IS_TIMEOUT(10005,"您的登录已过期，请重新登录"),
    TOKEN_IS_INVALID(10006,"您的登录状态有误，请重新登录"),
    OLD_PASSWORD_IS_ERROR(10007,"您输入的原始密码有误，检查后继续修改密码"),

    // 参数异常失败响应
    PARAMS_IS_INVALID(20000,"您输入的参数有误，请检查后重新输入"),

    // 业务异常响应
    // 批次相关
    BATCH_IS_NOT_EXISTS(30001,"该批次不存在"),

    // 质检相关内容
    QUALIFIED_MODIFIED_IS_NOT_SUPPORT(40001,"质检报告不支持修改"),
    // 栏舍相关的内容
    FENCE_HOUSE_IS_EXISTS(40002,"该栏舍名已被使用，请更换为其他名字！"),
    ANIMAL_IS_NOT_EXISTS(40003,"该动物不存在或不处于养殖状态"),
    INDEX_RECORD_MODIFIED_IS_NOT_SUPPORT(40004,"动物指标变化记录不支持修改"),
    INDEX_RECORD_IS_EXISTS(40005,"这个动物在该时间点中已经记录过指标数据"),
    ANIMAL_IS_DELETED(40006,"该动物已经被删除"),
    HURDLES_IS_NOT_EXISTS(40007,"该栏圈不存在或不可用，无法移入动物"),
    HURDLES_SAVED_IS_EMPTY(40008,"该栏圈为空，无法移出动物，请联系管理员查明原因"),
    HURDLES_SAVED_IS_FULLED(40009,"该栏圈容量已满，请将动物移至其他栏圈"),

    INNER_SERVER_FAIL(500,"服务器内部异常，请联系管理员");

    private final Integer code;
    private final String message;
}
